7.4 分组之分段分组
如果要分组的数据是数字,且希望按照指定数字范围进行分组,则需要使用到pd.cut()
函数配合,
import pandas as pd
df=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\1.7.04 分组之分段分组.xlsx" )
print (df)
lvl=pd.cut(x=df.分数,
bins=[ 0,60,80,101 ],
labels=[ "差","中","优" ],
right = False #False 表示左闭右开,默认为False
)
for t,d in df.groupby( by = lvl , observed = True ): #observed原来默认为False,未来版设置为True,如果改为True可以减少警告提示
print (t)
print (d)
print ("---------------------------------")
返回:
| 姓名 | 分数 | |
|---|---|---|
| 0 | 张三 | 96 |
| 1 | 李四 | 57 |
| 2 | 王麻子 | 82 |
| 3 | 许流子 | 60 |
| 4 | 郭流子 | 79 |
差
| 姓名 | 分数 | |
| 1 | 李四 | 57 |
---------------------------------
中
| 姓名 | 分数 | |
| 3 | 许流子 | 60 |
| 4 | 郭流子 | 79 |
---------------------------------
优
| 姓名 | 分数 | |
| 0 | 张三 | 96 |
| 2 | 王麻子 | 82 |
---------------------------------